home *** CD-ROM | disk | FTP | other *** search
/ APDL Other Worlds / APDL Other Worlds Collection.iso / SF3000 / Extras / !SFskyedit / Resources / UK / Help next >
Encoding:
Text File  |  2003-11-10  |  35.5 KB  |  810 lines

  1. /------------------------------------------\
  2. |                 SFskyedit                |
  3. |   Star Fighter 3000 sky colours editor   |
  4. |          © Chris Bazley, 2001            |
  5. |     Version 1.24 (7th November 2003)     |
  6. \------------------------------------------/
  7. N.B. This text is best viewed at a display width of 77 columns.
  8.  
  9. -----------------------------------------------------------------------------
  10. 1   Introduction and Purpose
  11.     ========================
  12.  
  13.   SFskyedit is an editor for 'Star Fighter 3000' sky files. Since 'Star
  14. Fighter 3000' is a very tiresome name to type, from this point onward, I
  15. will refer to the game as 'SF3000'.
  16.  
  17.   A SkyCols file (in "Landscapes.Sky") contains the colours used to paint a
  18. particular type of planetary atmosphere (e.g. sunset, morning, night, gas
  19. clouds etc). This application allows you to edit these colours or define
  20. colour shades for new skies.
  21.  
  22.   SFskyedit is one of a number of tools currently under development for use
  23. with SF3000, which will eventually also include a complete map/mission
  24. editor. When these tools are finished, they will be distributed as a suite
  25. of complementary utilities.
  26.  
  27. -----------------------------------------------------------------------------
  28. 2   Requirements
  29.     ============
  30.  
  31.   • RISC OS 3.10 or better.
  32.   • The so-called 'nested Wimp' (softloadable as part of Acorn's universal
  33.     !Boot).
  34.   • The new (C99, APCS-32) shared C library and up to date versions of other
  35.     modules required by the C run-time environment.
  36.   • The Toolbox modules (in !System, or in ROM with RISC OS 3.6).
  37.  
  38.   If any of the above facilities are unavailable then the program will fail
  39. to load, with an error message describing the problem.
  40.  
  41. -----------------------------------------------------------------------------
  42. 3   Quick Guide
  43.     ===========
  44.  
  45.   Load the SFskyedit application. Open your !Star3000 game directory and
  46. locate the subdirectory "Sky" in "Landscapes" or "Disc2.Landscapes". Drag a
  47. file from this directory to the SFskyedit icon on the iconbar, and an
  48. editing window will open. (If you choose "Earth" or "Earth2" you may get a
  49. warning message. This is nothing to worry about.)
  50.  
  51.   Within the editing window will be a stack of coloured rectangles, these
  52. are numbered 0-62 (though you can't see this yet). These represent the
  53. colour bands currently in the file. There will be a red bar below the bottom-
  54. most colour band. This is the caret.
  55.  
  56.   Click SELECT to position the caret or drag SELECT to make a selection.
  57. Click or drag ADJUST to change the extent of a selection.
  58.  
  59.   Selected colour bands are highlighted with a border and whatever the
  60. number of that band (0-62). To deselect all selected bands, press Ctrl-Z or
  61. click SELECT outside the selected area. The caret and selection are mutually
  62. exclusive (e.g. only one may exist at a time).
  63.  
  64.   To change the colour of all selected bands, press Ctrl-E and choose a
  65. colour from the palette, or follow 'Effect'>'Set colour...' on the pop-up
  66. menu. To move selected bands drag SELECT from within the selection, or Shift-
  67. drag to copy. Position the bands at their destination using the ghost
  68. (orange) caret.
  69.  
  70.   There are two quick ways to create a high quality sky file:
  71. 1) Insert consecutive areas of plain colour ('Edit'>'Insert bands...'),
  72. select all the new areas plus some black, and smooth the finished product
  73. ('Effect'>'Smooth transitions').
  74. 2) Insert consecutive gradated fills, with the final one fading to black.
  75.   Which method you use is a matter of personal preference, but they are
  76. largely incompatible since you cannot successfully apply smoothing to
  77. gradated fills.
  78.  
  79.   Finally, to see the results of your handiwork in real time, press Ctrl-P
  80. or select 'Preview...' from the pop-up menu.
  81.  
  82. -----------------------------------------------------------------------------
  83. 4   User Manual
  84.     ===========
  85.  
  86. 4.1 Jargon
  87.     ------
  88.   "Colour band" - the building blocks of a sky file that are represented as
  89. coloured rectangles in the editing window. There are 63 bands in a file,
  90. each of which may be any colour of the standard mode 13 palette.
  91.  
  92.   "Shade" - actual pixel data that will be plotted to the screen by the sky
  93. renderer. There are 126 shades in a file, each consisting of a 4-pixel
  94. pattern. Shades are not directly editable by SFskyedit.
  95.  
  96.   "Caret" - as in a text editor, this is a positionable marker at which data
  97. may be inserted, and from where selections may be made. In SFskyedit the
  98. caret looks like a horizontal bar with uprights at either end. It is
  99. normally red, but turns grey when the editing window loses the input focus.
  100.  
  101.   "Ghost caret" - this is an orange bar that follows the mouse pointer
  102. during a drag operation, and shows where the bands being dragged would be
  103. inserted if dropped.
  104.  
  105.   "Clipboard" - an invisible area of temporary storage that is used when
  106. copying or moving colour bands. SFskyedit doesn't support the global
  107. clipboard protocol but the internal clipboard may be used to transfer colour
  108. bands between different editing windows.
  109.  
  110. 4.2 Data input and output
  111.     ---------------------
  112.   Not only input and output via the desktop Filer are supported, but also
  113. drag-and-drop interaction with other desktop programs. At the moment the
  114. only other app that supports direct transfer of SkyCols files is FednetCmp.
  115. RAM transfer is not supported because the decompression module insists on
  116. loading data directly from file.
  117.  
  118.   Files are verified for consistency upon loading. Certain of the game files
  119. do not quite conform to the strictly defined editing model, bringing up a
  120. warning dialogue box. In practice this is nothing to worry about (see
  121. section 5.4 "Editing model").
  122.  
  123.   To disable the warning message for the remainder of a session, click on
  124. the "Disable warning" button in the dialogue box. To disable it permanently,
  125. add the command line switch "-nowarn" to the !Run file.
  126.  
  127. 4.3 Editing model
  128.     -------------
  129.   The editing model used by SFskyedit is not strictly speaking appropriate,
  130. but I have adopted it to make the program easier to use.
  131.  
  132.   Within this manual you will find many references to 'insertion' and
  133. 'removal' of colour bands, implying that a sky file is (like this text file)
  134. a sequence of data of arbitrary length. In fact, a sky file is of finite
  135. length (63 colour bands) and cannot be extended.
  136.  
  137.   This means that inevitably whenever bands are 'inserted' some bands are
  138. pushed off the top. This is very unlikely to be a problem, however, as there
  139. is loads of space in a file (no Fednet sky goes above band 35). All the
  140. bands at the top are likely to be either black or rubbish that you forgot to
  141. delete.
  142.  
  143. 4.4 The iconbar
  144.     -----------
  145.   Drag SkyCols files to the SFskyedit icon to edit them. SkyCols files may
  146. be identified by the filetype &404 and an icon showing a blue/yellow sky
  147. with dark hills. If an editing window is already open for a dragged file
  148. then this will be shown instead.
  149.  
  150.   Click SELECT to create a new sky file. All colour bands will be
  151. initialised as black, and the minimum sky height and stars start height will
  152. be zeroed.
  153.  
  154.   Click ADJUST to bring all open windows to the front, e.g. in case they are
  155. hidden behind other windows open on the desktop.
  156.  
  157.   Click MENU to bring up the main application menu:
  158.  
  159. 'Info'>
  160.  
  161.   Leads to a standard 'About this program' window.
  162.  
  163. 'Help...'
  164.  
  165.   Opens this text manual.
  166.  
  167. 'Files'>
  168.  
  169.   This submenu lists all open editing windows, by file path. Clicking on one
  170. of these menu entries brings the corresponding window to the front of the
  171. stack.
  172.  
  173. 'Quit'
  174.  
  175.   Before quitting, SFskyedit will check whether there are any files being
  176. edited that are unsaved/modified. If so then you will be prompted to confirm
  177. that you wish to discard any changes.
  178.  
  179. 4.5 Main editing window
  180.     -------------------
  181.   The main section of the editing window is occupied by a huge vertical
  182. stack of coloured rectangles. These are the 'colour bands', numbered from 0
  183. (bottom) to 62 (top). When selected colour bands are highlighted with a
  184. border and whatever the number of that band.
  185.  
  186.   The caret looks like a red horizontal bar with uprights at both ends. When
  187. a file is first opened it appears below band 0, but may be moved up and down
  188. using the arrow keys. When it reaches the top or bottom edge of the window
  189. the view will scroll automatically in that direction. Use of the caret is
  190. described further in the next section of the manual.
  191.  
  192.   When you scroll the editing window the caret will automatically be moved
  193. so that it remains inside the visible area (this behaviour is configurable
  194. using the 'Trap caret' menu option). The Home/End and PgUp/PgDn keys may
  195. also be used for scrolling.
  196.  
  197.   At the top of the editing window are two writable values, 'Min sky height'
  198. and 'Stars start height'. These reflect the current state of these values in
  199. the sky file header, and may be altered by typing into the writable field or
  200. using the bump up/down arrows.
  201.  
  202.   'Min sky height' is an offset that changes the way that the sky is
  203. rendered - higher values make the sky look more 'compact' at ground level,
  204. with narrower colour bands. In other words exactly the same effect as you
  205. get by flying high, hence the name.
  206.  
  207.   'Stars start height' is the height at which the game begins to plot stars
  208. in the sky, so you should set it to the height at which you want the
  209. atmosphere to appear to be thinning.
  210.  
  211.   Rather than typing numbers, it is much easier to set these values by eye.
  212. This can be done using the interactive preview window, of which more later.
  213.  
  214. 4.6 Mouse actions on editing window
  215.     -------------------------------
  216.   SFskyedit uses the standard RISC OS selection and drag & drop model, which
  217. should be familiar to anyone who has used a text editor.  Selections are
  218. contiguous, meaning that only neighbouring bands may be selected - no gaps
  219. allowed. The caret and selection are mutually exclusive (e.g. only one may
  220. exist at a time).
  221.  
  222.   To position the caret click SELECT on the editing window (clicking on a
  223. selection has no effect, to allow drag & drop to function).
  224.  
  225.   To select bands, position the caret at a starting point and (holding
  226. SELECT) drag out the selection. The end of the selection will follow the
  227. mouse pointer, expanding or contracting until you release the mouse button.
  228. The editing window will scroll up or down automatically when the mouse
  229. pointer nears the edge of the visible area.
  230.  
  231.    Alternatively, clicking ADJUST will instantly select all colour bands
  232. inbetween the caret position and the mouse pointer. An existing selection
  233. may be modified by clicking or dragging ADJUST, to grab the nearest end
  234. point of the selection and move it to the current pointer position.
  235.  
  236.   Copy and move operations may be done using the mouse rather than using the
  237. clipboard method described later. Selected bands may be dragged within the
  238. file or to another editing window. Editing windows will scroll automatically
  239. when the pointer approaches the top/bottom of the window.
  240.  
  241.   Dragging selected bands within a file will move them. To copy them, hold
  242. SHIFT when starting the drag operation. These actions are reversed when
  243. dragging to another file (SHIFT-drag to move, drag to copy).
  244.  
  245. Summary of mouse operations:
  246.  
  247. SELECT click
  248.   On selection: Do nothing, unless held for drag.
  249.   In clear: Set new caret position, clearing any selection.
  250.  
  251. SELECT double-click
  252.   On selection: Choose a new colour for the selected bands.
  253.  
  254. SELECT drag
  255.   In clear:  Drag out a new selection from the caret position.
  256.   On selection: Move or copy the selected colour bands to the drop location.
  257.  
  258. MENU click
  259.   Open pop-up menu to allow operations on the selection or insertion of
  260.   colour bands at the caret.
  261.  
  262. ADJUST click
  263.   If selection: Set nearest end of selection to click position.
  264.   If no selection: Create new selection from caret position to click
  265.   position.
  266.  
  267. ADJUST drag
  268.   If selection: Drag extend/contract the nearest end of the selection.
  269.  
  270. 4.7 File operations
  271.     ---------------
  272. 'File'>'Info'>
  273.  
  274.   This leads to a standard 'About this file' window, which gives information
  275. about the file being edited: Size, type, whether it has been modified since
  276. it was loaded/saved, and the time and date of the file. The date is
  277. generally taken from the date stamp of the file, except when the data is
  278. received directly from another app (in which case it is the time of
  279. transfer).
  280.  
  281. 'File'>'Save'>
  282.  
  283.   This leads to a standard savebox. Type a file name and drag the icon to a
  284. directory display, or type a full file path and press Return.
  285.  
  286. 'File'>'Close'
  287.  
  288.   This is equivalent to attempting to close the editing window. If you have
  289. unsaved changes then you will first be prompted to save or discard them
  290. before the session is closed.
  291.  
  292. 4.8 Editing operations
  293.     ------------------
  294. 'Edit'>'Insert bands...'
  295.  
  296.   This brings up a dialogue box that allows you to set up an insertion
  297. operation.
  298.  
  299.   The number of bands to insert is set by typing into the numeric field at
  300. the top of the window, or using the bump up/down arrows provided. When doing
  301. a gradated fill this number also dictates the smoothness of colour
  302. transition that can be achieved.
  303.  
  304.   If you wish the new colour bands to be a plain colour, set the "Plain
  305. fill" radio button, and select a colour from the pop-up palette. This fill
  306. colour will be retained across multiple insertion operations until it is
  307. superseded.
  308.  
  309.   The facility to do a "Gradated fill" is essentially another interface to
  310. the 'Interpolate' function described above. Using a sequence of gradated
  311. fills you can quickly build up a high-quality sky file without lots of
  312. fiddling.
  313.  
  314.   The default start and end colours for a gradated fill are those
  315. immediately above and below the current caret position. At the bottom of the
  316. file there is no preceding colour, so the start colour is set to white. You
  317. can select alternative colours from the pop-up palettes - doing so will
  318. automatically set the corresponding 'Include...' option button (see below).
  319.  
  320.   The 'Include start colour' and 'Include end colour' options allow you to
  321. do a gradated fill without actually including the initial and/or final
  322. colour. This is useful for interpolating between pre-existing adjacent
  323. colour bands and for merging consecutive fills.
  324.  
  325.   Normally these options are set automatically depending on whether the
  326. start and end colours correspond to the colours adjacent to the caret, but
  327. you can also set them manually. By default neither start nor end colours are
  328. included, except at the start of the file where inclusion of the start
  329. colour is sensible.
  330.  
  331.   To reset the dialogue box ADJUST-click on the 'Cancel' button. Clicking
  332. 'Insert' will insert the specified number of new colour bands and move the
  333. caret up by the same amount. If you click with ADJUST rather than SELECT
  334. then the start and end colour will be updated for another insertion and the
  335. dialogue box will remain open. (This is useful for doing consecutive
  336. gradated fills.)
  337.  
  338. 'Edit'>'Cut'
  339.  
  340.   Discard any previous contents of the clipboard, and copy all selected
  341. bands to it. The original colour bands will then be removed from the file,
  342. giving the impression that the bands have 'moved' to the clipboard. The
  343. bands above the removed chunk will shuffle down to fill the space, with new
  344. black ones appearing at the top.
  345.  
  346. 'Edit'>'Copy'
  347.  
  348.   Discard any previous contents of the clipboard, and copy all selected
  349. bands to it. The original colour bands will be untouched.
  350.  
  351. 'Edit'>'Paste'
  352.  
  353.   If the clipboard is not empty then this operation will paste any colour
  354. bands on the clipboard to the editing window. These will be inserted at the
  355. current caret position, causing all bands above the caret to shuffle upward
  356. (at the very top some may be lost). If there is no caret then the clipboard
  357. contents will instead replace the the current selection.
  358.  
  359. 'Edit'>'Delete'
  360.  
  361.   As 'Cut' except that the clipboard contents are untouched.
  362.  
  363. 'Edit'>'Select all'
  364.  
  365.   Select all the colour bands.
  366.  
  367. 'Edit'>'Clear selection'
  368.  
  369.   Deselect any colour bands that may have been selected.
  370.  
  371. 4.9 Effects on a selection
  372.     ----------------------
  373. 'Effect'>'Set colour...'
  374.  
  375.   Clicking this menu entry brings up a colour picker dialogue which allows
  376. you to choose a colour from the standard 256 colour palette. You can revert
  377. to the original colour at any time by clicking ADJUST on 'Cancel'. When you
  378. are happy with your choice (displayed in the bottom left of the dialogue
  379. box) click OK to confirm. All the bands selected in the editing window will
  380. be set to the chosen colour.
  381.  
  382. 'Effect'>'Interpolate colours...'
  383.  
  384.   This brings up a dialogue box that allows you to set up an interpolation
  385. between two colours. You give the routine a start and end colour and it will
  386. calculate the colours that (when applied to the intervening bands) will most
  387. closely approximate a smooth transition.
  388.  
  389.   By default the start/end colours used will be the first and last bands of
  390. the current selection, but you can choose alternative colours from the pop-
  391. up palette. To return to the default colours ADJUST-click on the 'Cancel'
  392. button.
  393.  
  394.   When you click 'Interpolate' the finished colour gradient will overwrite
  395. the current selection. If you want to *insert* a colour gradient then you
  396. should instead use the 'Insert bands' facility described earlier.
  397.  
  398. 'Effect'>'Smooth transitions'
  399.  
  400.   This facility will attempt to smooth abrupt changes from one colour to
  401. another, within the selected bands.
  402.  
  403.   Unfortunately SFskyedit is unable to determine which the key colour bands
  404. are and which are just intermediate colours. For this reason smoothing will
  405. only really work where there are large blocks of contiguous bands all set to
  406. the same colour.
  407.  
  408.   The routine attempts to find the centre point of each block of colour (or
  409. uses the start and end of the selection for the first and final blocks).
  410. Then, it changes all the intervening bands to make a smooth gradient between
  411. the various mid-points, which remain unaltered.
  412.  
  413.   Basically, this is a one time only option, since almost by definition
  414. there will not remain any large blocks of contiguous colour after a
  415. smoothing operation. Not amazingly useful...
  416.  
  417. 4.10 Preview window
  418.      --------------
  419.   A preview may be opened by selecting 'Preview...' from the editing window
  420. menu. Each individual editing window may have its own preview. If in doubt
  421. which is which, the title of the preview window shows the name of the file
  422. that it is associated with.
  423.  
  424.   The window shows an interactive view of how the sky file would look if it
  425. were rendered by the game. The view is real-time, updating as the file is
  426. edited or when the height slider is dragged. The only difference between
  427. this and the game is that distant planets and stars are not rendered in the
  428. preview.
  429.  
  430.   The viewing height is controlled with a slider attached to the preview
  431. window, with a numeric display below to show the current height. The numbers
  432. displayed show the height RELATIVE to the current minimum sky height. Thus
  433. the rendered view will change in appearance if the MSH is changed, though
  434. the viewing height remains constant. The MSH is a purely cosmetic adjustment.
  435.  
  436. Two useful options are available from the sky preview menu:
  437.  
  438. 'Set min. sky height'
  439.  
  440.   Will take the current view and reset the MSH so that this is how the sky
  441. appears from ground zero. The viewing height will also be reset to 0, so no
  442. apparent change will be visible. Mathematically what happens is:
  443.  
  444.     MSH = MSH + viewing height
  445.     viewing height = 0
  446.  
  447.   As should be obvious from the calculation above, whilst you can increase
  448. the MSH by this method it is impossible to reduce it. To do this you must go
  449. back to the editing window and change the value by hand.
  450.  
  451. 'Set stars plot height'
  452.  
  453.   Will set the height at which stars begin to come out to be that of the
  454. preview. This value is taken directly from the viewing height since the SPH
  455. is also relative to the MSH. It would be particularly difficult to set the
  456. SPH without the sky preview, but it should be easy to do by eye.
  457.  
  458.   Although having the stars plotted at a relatively low level can look
  459. groovy (giving the appearance of a thin atmosphere) don't forget that they
  460. won't show up very well against bright colours.
  461.  
  462. 4.11 Keyboard shortcuts
  463.      ------------------
  464. In dialogue boxes:
  465. Return  - Select default action (the button with a coloured surround).
  466. Escape  - Select cancel/abort operation, "run away!"
  467.  
  468. Main editing window:
  469. F1        - Help (i.e. open application manual).
  470. F3        - Open savebox to allow sky file to be saved.
  471. Ctrl-F1   - Display file details, including date last saved and size etc.
  472. Ctrl-F2   - Close editing window (gives discard/save/cancel prompt if
  473. appropriate).
  474. Ctrl-P    - Open an interactive preview showing the sky as rendered in the
  475. game.
  476. PgUp/PgDn - Scroll view vertically by one page at a time.
  477. Home/End  - Scroll view vertically to top or bottom.
  478. Ctrl-T    - Toggle option to trap the caret within the view area.
  479. Up/Down   - Move the caret.
  480.  
  481. Effects on selection:
  482. Ctrl-E - Set colour of all selected colour bands.
  483. Ctrl-S - Attempt to smooth abrupt colour transitions within selection.
  484. Ctrl-I - Open 'Interpolate' dialogue (make gradated transition between two
  485. colours).
  486.  
  487. Editing operations:
  488. Ctrl-A  - Select all colour bands.
  489. Ctrl-Z  - Deselect any selected colour bands.
  490. Insert  - Open 'Insert bands' dialogue box (insert plain colour or gradated
  491. fill at caret).
  492. Ctrl-X  - Cut selected bands to the clipboard (as copy, but removes them).
  493. Ctrl-C  - Copy selected bands to the 'clipboard' (temporary storage).
  494. Ctrl-V  - Paste bands from the clipboard, inserting at the current caret
  495. position (or replacing the selection, if any).
  496. Ctrl-K (or Delete) - Remove selected bands from the sky file.
  497.  
  498. On Preview:
  499. F1      - Help.
  500. Ctrl-F2 - Close preview window.
  501. Ctrl-M  - Set minimum sky height so that view shown is new ground zero.
  502. Ctrl-S  - Set stars plot height to current viewing height.
  503. Up/Down - Increase/decrease viewing height in steps of 10.
  504.  
  505. -----------------------------------------------------------------------------
  506. 5   Technical details
  507.     =================
  508.  
  509. 5.1 Where to find sky colours files
  510.     -------------------------------
  511.   Sky colours files can be found inside the !Star3000 application, in
  512. "Landscapes.Sky". Depending on your installation, the main Landscapes
  513. directory may be inside a directory "Disc2".
  514.  
  515.   So far as I know, this file format is unique to SF3000.
  516.  
  517. 5.2 File formats
  518.     ------------
  519.   The tables below show the sky colours file format, when de-compressed
  520. (though you shouldn't have to worry about this).
  521.  
  522. Sky colours file (512 bytes)
  523. ----------------
  524.  
  525. Word    Data
  526. +0      Min height of sky (cosmetic offset for rendering)
  527. +4      Start height of star plot (actual height)
  528. +8...   Sky data (126 shades) :
  529.   +8    Sky shade 1 (4 bytes are mode 13 colours, may be dithered)
  530.   +12   Sky shade 2
  531.   +16   Sky shade 3...
  532.  
  533.   The rules by which SFskyedit generates shades data are described
  534. separately under the heading "Editing model", since the basic file format
  535. does not preclude other methods.
  536.  
  537. 5.3 Filetype
  538.     --------
  539.   The filetypes used by SF3000 are highly non-official. Presumably they
  540. thought that this wouldn't matter for files used internally in the game. I
  541. already know of some clashes (none serious) with other filetypes, but I
  542. can't really alter them retrospectively.
  543.  
  544. &404 - SkyCols
  545.  
  546. 5.4 Dithering rules
  547.     ---------------
  548.   SFskyedit has been written to allow sky files similar to the Fednet
  549. originals to be created and edited. To facilitate this the editor
  550. deliberately imposes quite strict constraints on the shades data. These
  551. constraints have been derived from the existing sky files. [*]
  552.  
  553.   Rather than allowing literally any sequence of 126 quad-pixel patterns,
  554. SFskyedit allows only every other shade to be edited. These editable shades
  555. must be unpatterned pixel spans of a single colour, with the intervening
  556. shades available for dithering colour transitions. This gives 63 editable
  557. colour bands rather than the actual 126 shades.
  558.  
  559.   The plain shades are odd-numbered and the dithered shades even-numbered
  560. (counting from 0). Since the first colour cannot be sensibly dithered with a
  561. preceding colour it is one shade wider than other colour bands:
  562.  
  563. Shade  Pattern  Role
  564. -----  -------  ----
  565. 0      0000     Clone of shade 1
  566. 1      0000     Plain colour band 0 (editable)
  567.  
  568. 2      1010     Dithered
  569. 3      1111     Plain colour band 1 (editable)
  570.  
  571. 4      2121     Dithered
  572. 5      2222     Plain colour band 2 (editable)
  573.  
  574.   If the shades in a sky file do not follow the conventions described (e.g.
  575. if outlandish patterns are used, or there are many contiguous dithered
  576. shades), then SFskyedit may badly misinterpret them. I make no apology for
  577. this, since I have no reason to suppose that any such files exist or ever
  578. will.
  579.  
  580. [*] Violations:
  581.   A couple of the Fednet sky files contain isolated peculiarities that
  582. violate the strict rules set out above: The final (non-black) shade of both
  583. "Earth" and "Earth2" consists of the preceding blue dithered with another
  584. blue rather than the black of the following shade.
  585.  
  586.   In practice this doesn't really matter, though the oddity could be
  587. rectified by using SFskyedit to reset the black colour band and consequently
  588. the dithering on the transitional shade.
  589.  
  590. -----------------------------------------------------------------------------
  591. 6   Program history
  592.     ===============
  593.  
  594. 1.00 (15th August 2001) -----------------------------------------------------
  595.   • First version (though it inherits much of the structure and features of
  596.     SFcolours).
  597.  
  598. 1.01 (17th August 2001) -----------------------------------------------------
  599.   • Had forgotten to RMEnsure the nested Wimp in the !Run file, to safeguard
  600.     use of 24-bit icon colours.
  601.  
  602. 1.02 (19th August 2001) -----------------------------------------------------
  603.   • Fixed code that passes input focus back to main window - no longer gives
  604.     error when it is already gone and child windows are closed.
  605.   • Closes interpolate/insert dialogues and preview window when parent
  606.     editing window is closed.
  607.  
  608. 1.03 (19th September 2001) --------------------------------------------------
  609.   • Fixed bug in Loader component regarding multi-stage RAM transfers.
  610.  
  611. 1.10 (24th December 2001) ---------------------------------------------------
  612.   • Total overhaul of sourcecode from the ground up, with many improvements
  613.     and fixes not really externally visible.
  614.   • Now uses flexlib rather than the C library heap, for storing large data
  615.     blocks. This means that the Wimpslot expands and contracts as necessary.
  616.   • ADJUST-clicking the close icon of a document window now opens its parent
  617.     directory, as proscribed by the Style Guide.
  618.   • Added warning beeps for failed actions (e.g. copy when no selection).
  619.   • Menu options now grey/ungrey appropriately when hot keys are pressed in
  620.     main editing window.
  621.   • Clicking editing window closes Insert/Interpolate dialogues if open as
  622.     children, to give impression of transience.
  623.   • Preview images are now scaled correctly for screenmode eigen factors.
  624.   • Fixed a number of embarrassing memory leaks.
  625.   • Fixed bug in Loader component with !Scrap transfer from other apps,
  626.     where suggested leaf name was shorter than "<Wimp$Scrap>".
  627.   • Corrected 'SFsky' menu titles, left from before I'd decided on the name.
  628.   • No longer get weird colours by clicking at very edge of palette.
  629.  
  630. 1.11 (8th January 2002) -----------------------------------------------------
  631.   • Fixed "Invalid Object Id" bug on start-up, where app had been launched
  632. by double-clicking on sky file.
  633.   • Minor improvement to handling of ADJUST-clicks on action buttons in
  634.     palette dialogue.
  635.  
  636. 1.12 (3rd May 2002) ---------------------------------------------------------
  637.   • New 16 colour & 256 colour sprites.
  638.   • Verifies format of sky files on loading. Added '-nowarn' command line
  639.     switch to disable this.
  640.   • Other internal improvements including more efficient code (!RunImage
  641.     actually smaller).
  642.  
  643. 1.13 (11th November 2002) ---------------------------------------------------
  644.   • Further improvement to error-checking macros.
  645.   • Corrected mistake in !Run file where the CallASWI module was not being
  646.     loaded on RISC OS 3.6, despite being required on all OSes prior to 3.7.
  647.   • Recompiled using the official Castle release of 32-bit Acorn C/C++.
  648.  
  649. 1.14 (11th April 2003) ------------------------------------------------------
  650.   • Fixed bug where auto-scrolling stopped when pointer reached edge of
  651.     window (only manifested in modes with non-standard eigen factors).
  652.   • Auto-scrolling is now constant rate, since it adjusts itself to the
  653.     elapsed time between null polls.
  654.   • Changed key shortcuts for close window to ctrl-F2, as per the style
  655.     guide.
  656.   • Slightly more verbose error messages for situation where a file can't be
  657.     opened.
  658.   • Moved "Help" entry to top of iconbar menu, as per Castle docs.
  659.  
  660. 1.20 (13th June 2003) -------------------------------------------------------
  661.   • The current selection is now highlighted using a dark background colour
  662.     in addition to numbering the icons and giving them borders.
  663.   • You can now double-click on selected bands to change their colour and
  664.     ADJUST-drag to alter the extent of an existing selection.
  665.   • Paste from clipboard now replaces any selection, rather than being
  666.     disabled except when there was a caret.
  667.   • Implemented full keyboard control of the caret, and added 'Trap caret'
  668.     option to keep the caret inside the view area when scrolling.
  669.   • Redesigned the 'Insert' dbox to provided more complete control over
  670.     inclusion of start/end colours and the starting colour for the fill.
  671.   • All dialogue boxes can now be reset by ADJUST-clicking on the 'Cancel'
  672.     button. This allows a simplified design for the 'Interpolate' dbox.
  673.   • Reorganisation of the menu structure and other tweaking to the user
  674.     interface after reference to the Style Guide.
  675.   • The caret no longer disappears entirely when editing window loses the
  676.     input focus. This helps when using the 'Insert' dbox.
  677.   • When closed, transient dialogue boxes that claim the input focus now
  678.     restore it to the previous owner. The 'Insert' and 'Interpolate' dboxes
  679.     still pass the focus to the main window, but now only do so if they own
  680.     it.
  681.   • The 'Insert' and 'Interpolate' pseudo-transient dboxes no longer have
  682.     back-icons and will now be dismissed by a variety of mouse clicks - not
  683.     just those on the parent window.
  684.   • File paths are now canonicalised before being displayed or compared
  685.     (i.e. "IDEFS::Tamzin.$.!Boot.Choices" rather than "<Choices$Write>")
  686.   • Now uses the Toolbox's standard 'Quit' dbox object rather than a custom
  687.     dbox. The default action is now 'Cancel' rather than 'Quit'.
  688.   • Removed COPY and ^H as alternative key shortcuts for delete, and
  689.     implemented HOME and END keys to go to top/bottom of sky file.
  690.   • Fixed a redraw bug in the palette dbox, though this was only evident in
  691.     screen modes with a y eigen factor of less than 1.
  692.   • No longer gives repeated errors and loses the caret off the top when an
  693.     insertion overruns the end of a file.
  694.   • The caret is now relocated to the base of a removed area on a cut or
  695.     delete operation, rather than appearing in an unrelated position.
  696.   • Fixed bugs with drag-and-drop: When moving a selection to a higher
  697.     location in another file the insertion point was incorrect, and a drop on
  698.     the site of a former selection would replace those bands.
  699.   • Fixed bug where the caret was not drawn if Ctrl-Z was pressed to clear
  700.     the selection and it was not within the selection redraw area.
  701.   • Can no longer crash the program by entering rubbish values into the 'Min
  702.     sky height' and 'Stars start height' writeable fields whilst the preview
  703.     window is open.
  704.   • Integrates much better with the pinboard - any iconised window icon is
  705.     removed when that window is re-opened independently by the application.
  706.   • More sensible response to error on Toolbox_Initialise (doesn't rely on
  707.     messages file, which isn't open).
  708.  
  709. 1.21 (19th August 2003) -----------------------------------------------------
  710.   • Even if there is no unsaved data when a PreQuit message is received, we
  711.     now wait for the Quit message rather than dying prematurely.
  712.   • Where possible, changed to use SWIs instead of Star Commands for file
  713.     access. This is faster and also reduces code size.
  714.   • Now demands version 5.43 of the shared C library, since this is the
  715.     earliest version documented as supporting C99 functions (some of which
  716.     are used).
  717.   • Formatted the manual text for a fixed-width 77 column display (Zap's
  718.     default).
  719.  
  720. 1.22 (13th September 2003) --------------------------------------------------
  721.   • The program now directly incorporates compression code, hence it is no
  722.   longer dependent on the Comp and Decomp modules from !FednetRes.
  723.   • Released with source code under the terms of the GNU G.P.L.
  724.  
  725. 1.23 (23rd October 2003) ----------------------------------------------------
  726.   • Internal changes.
  727.  
  728. 1.24 (7th November 2003) ----------------------------------------------------
  729.   • On shutdown, no longer quits immediately that 'Quit' is selected from
  730.     the quit confirm dbox. Instead all editing windows are closed and we
  731.     wait for a Quit message (analogous to what Paint, Edit & Draw do).
  732.   • Now restarts desktop shutdown by sending a keypress event to the task
  733.     that sent us the PreQuit message (as recommended by the PRM), instead of
  734.     using SWI Wimp_ProcessKey.
  735.  
  736. -----------------------------------------------------------------------------
  737. 7   Licence and Disclaimer
  738.     ======================
  739.  
  740.   This program is free software; you can redistribute it and/or modify it
  741. under the terms of the GNU General Public Licence as published by the Free
  742. Software Foundation; either version 2 of the Licence, or (at your option)
  743. any later version.
  744.  
  745.   This program is distributed in the hope that it will be useful, but
  746. WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  747. or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licence for
  748. more details.
  749.  
  750.   You should have received a copy of the GNU General Public Licence along
  751. with this program; if not, write to the Free Software Foundation, Inc.,
  752. 675 Mass Ave, Cambridge, MA 02139, USA.
  753.  
  754.   If you did not receive source code with this program then you can download
  755. it from http://starfighter.acornarcade.com
  756.  
  757. -----------------------------------------------------------------------------
  758. 8   Credits
  759.     =======
  760.  
  761.   SFskyedit was designed and programmed by Chris Bazley.
  762.  
  763.   This program uses CBLibrary, which is (C) 2003 Chris Bazley. This library
  764. and its use are covered by the GNU Lesser General Public Licence. You can
  765. obtain CBLibrary with source code by downloading it from
  766. http://www.bigfoot.com/~chrisbazley/
  767.  
  768.   This program contains a small but important section of code written by
  769. Fednet themselves. The routine is used to render the sky preview, with minor
  770. modification to conform to the APCS.
  771.  
  772.   Much credit goes to David O'Shea and Keith McKillop for working out the
  773. Fednet compression algorithm. David wrote a DeComp module for use with the
  774. Stunt Racer track designer, which earlier versions of SFskyedit relied upon.
  775. The code incorporated into this application is heavily based (with
  776. permission) upon his.
  777.  
  778.   Olaf Krumnow and Herbert zur Nedden of the German Archimedes Group wrote
  779. the ResFind program I use to find the correct resources for different
  780. languages.
  781.  
  782.   Thanks to the denizens of comp.sys.acorn.programmer for their advice - in
  783. particular Kevin Bracey, Richard Murray and Stewart Brodie.
  784.  
  785.   Thanks to my brother Martin for his bug-spotting!
  786.  
  787.   The application name "SFskyedit" (including associated sprites/system
  788. variables) has been officially registered with RISCOS Ltd.
  789.  
  790.   The game Star Fighter 3000 is © FEDNET Software 1994, 1995.
  791.  
  792. -----------------------------------------------------------------------------
  793. 9   Contact details
  794.     ===============
  795.  
  796.   Feel free to contact me with any bug reports, suggestions or anything else.
  797. Even if you think that my programs are crap, I'll be interested to know!
  798.  
  799.   Mail:  Mr C.J. Bazley
  800.          43 Wilton Grove
  801.          Wimbledon
  802.          London
  803.          SW19 3QU
  804.  
  805.   Email: mailto:chrisbazley@bigfoot.com (preferred)
  806.          mailto:chris@bazley.freeuk.com
  807.  
  808.   WWW:   http://starfighter.acornarcade.com
  809.          http://www.bigfoot.com/~chrisbazley/
  810.